﻿using System;
using System.Runtime.Serialization;

namespace JTLeigh.Commerce.Spencer.Features.ProductImages.Service.Contracts.Runtime.GetProductImages
{

	/// <summary>
	/// Data contract representing a product view.
	/// </summary>
	/// <remarks>
	/// <para>
	/// Examples of product views are &quot;Front View&quot;, &quot;Back View&quot;, &quot;Top 
	/// View&quot;, &quot;Cables Close-Up&quot;, etc.
	/// </para>
	/// </remarks>
    [DataContract(Name = "ProductImageView", Namespace = "http://schemas.jtleigh.com/Commerce/Spencer/Features/ProductImages/1.0/Runtime/GetProductImages/")]
    public class ProductImageView
	{

		/// <summary>
		/// Gets or sets the view identifier.
		/// </summary>
		/// <value>A view identifier <see cref="Guid"/>.</value>
		[DataMember(Name = "ViewId", IsRequired = true)]
		public Guid ViewId { get; set; }

		/// <summary>
		/// Gets or sets the well-known view code.
		/// </summary>
		/// <value>A well-known view code <see cref="Byte"/>.</value>
		[DataMember(Name = "WellKnownViewCode", IsRequired = true)]
		public byte WellKnownViewCode { get; set; }

		/// <summary>
		/// Gets or sets the order in which the view should be displayed.
		/// </summary>
		/// <value>An <see cref="Int32"/> ordinal position.</value>
		[DataMember(Name = "DisplayOrder", IsRequired = true)]
		public int DisplayOrder { get; set; }

		/// <summary>
		/// Gets or sets the name of the view.
		/// </summary>
		[DataMember(Name = "Name", IsRequired = true)]
		public string Name { get; set; }

	}

}
